home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 April
/
EnigmA AMIGA RUN 06 (1996)(G.R. Edizioni)(IT)[!][issue 1996-04][Skylink CD V].iso
/
docs
/
corsoguide
/
hardware-1.txt
< prev
next >
Wrap
Text File
|
1992-09-03
|
7KB
|
105 lines
L'hardware dell'Amiga
Il cuore del sistema come ben sapete è il 680x0 della Motorola; scelta
decisamente giusta in quanto questo microprocessore possiede una serie di
caratteristiche (trap, modo supervisore e utente ecc.) che lo rendono
particolarmente efficace per il multitasking; ed è ben conosciuta la
caratteristica unica dell'Amiga: i coprocessori; infatti il microprocessore
è attorniato da una serie di coprocessori, ognuno dedicato ad un operazione
ben specifica, che sollevano quest'ultimo dal compito di occuparsi di
determinati problemi (spesso di ingresso/uscita) per dedicarsi
completamente a quelli di calcolo. Come avrete sentito più volte questi
processori hanno dei nomi piuttosto pittoreschi: Denise (sostituito nelle
macchine AGA da Lisa), Fat Agnus (attualmente Alice), Paula, CIA (e adesso
sul CD32 se ne aggiunto uno nuovo: Akiko); trascurando il perché di questi
nomi tutti femminili (io veramente mi preoccuperei se venisse prodotto un
integrato con un nome del tipo: Ugo!) andiamo ad analizzarne le
caratteristiche. Lisa è il processore grafico, cioè colui che crea tutte le
risoluzioni, determina tutte le frequenze video, insomma visualizza tutto
sullo schermo; Alice forse è il più importante di tutti ed è composto da
più processori messi insieme utilizzando una definizione in VLSI (Very
Large Scale Integration = Integrazione a Scala Molto Grande) per
compattezza e per minimizzare i costi; contiene innanzitutto il Blitter il
cui nome proviene da BLIT (BLock Image Transfer = Trasferimento di Immagine
a Blocchi); scopo di questo integrato è spostare blocchi di memoria
rettangolari (che nella stragrande maggioranza si tratta di blocchi
grafici) con operazioni logiche e ad una velocità impressionante; permette
anche di tracciare linee ed eseguire il filling (riempimento) grafico;
potete ben immaginare che essendo tutto ciò realizzato via hardware risulta
velocissimo; in realtà grazie alla funzione logica programmabile che opera
sui dati in tempo reale, se ne fà degli utilizzi più svariati e non solo
per la grafica (decodifica MFM, cancellazione di memoria ecc.). Altro
integrato contenuto in Alice è il Copper; questo è un velocissimo
processore RISC (Reduce Instructions Set Chip = Chip con set di istruzioni
ridotto) che permette solo 3 istruzioni e risulta sincronizzato al pennello
video! Vale a dire che il programma del Copper può attendere una precisa
posizione di quest'ultimo (e non solo in verticale) per eseguire
determinate operazioni; dovete a lui la possibilità di slittare gli schermi
uno sopra l'altro, infatti quando si raggiunge una determinata posizione
verticale dello schermo il copper cambia i registri di Lisa inserendo i
parametri del secondo schermo, e tornando all'inizio del video ripristina
quelli vecchi. Fa parte di Alice anche la circuteria per la gestione e
temporizzazione dei canali DMA che vedremo dopo; arriva quindi Paula il
processore che si occupa sostanzialmente della generazione sonora dalle
caratteristiche note a tutti. Infine ci sono due CIA (Complex Interface
Adapter = Adattatore complesso di interfaccia) siglati numericamente come
8520 e che erano presenti anche nel C64! Si tratta degli integrati che
regolano il flusso dei dati con l'esterno; infatti tramite loro si
gestiscono drive, porta seriale e parallela, tastiera e le porte joystick.
Ma non è finito qui, poiché occorre indicare dove i dati a cui questi
integrati fanno riferimento vengono memorizzati (cioè dove si trovano i
bitplanes contenenti i dati dello schermo per Lisa, o i suoni per Paula); e
qui è presente un'altra caratteristica unica dell'Amiga, infatti tutti i
dati sono conservati nella stessa memoria, accedibile anche dal
microprocessore centrale; questo è sicuramente positivo, infatti su altre
piattaforme se viene resa disponibile un determinato quantitativo di
memoria su una scheda, ad esempio grafica, e se ne viene utilizzata solo
una parte, il resto non può essere disponibile ad altre risorse del
sistema; ma come è possibile che tutti gli integrati accedano
contemporaneamente alla stessa memoria? Tutto ciò è in parte merito dei
canali DMA (Direct Memory Access = Accesso Diretto della Memoria) che
permettono a ciascun processore di prelevare i dati dalla RAM senza
l'ausilio della CPU; ma ciò non esaurisce il problema, perché come tutti i
"vecchi" (che non erano vecchi prima dell'avvento di Amiga) libri di
informatica descrivono, quando il canale DMA accede alla memoria centrale,
lascia il microprocessore libero dall'oneroso compito di trasferire i dati
e dedicarsi al programma, senza però concederne l'accesso alla memoria;
bene il grandioso cast di ingegneri di Amiga ha ben pensato di partizionare
il tempo dedicato ad ogni canale DMA (sono 28 in tutto) e il
microprocessore; mentre fra i canali DMA questo non comporta quasi nessuna
limitazione (tranne per quelli del Blitter e del Copper) perché si
conoscono a priori le esigenze di tempo di ciascuno, lo stesso non si può
dire per il microprocessore che in un buon numero di casi è costretto ad
aspettare il prossimo slot time (così si chiama il periodo di tempo
concesso ad ogni canale) se quello attuale è occupato da un DMA; l'idea
come era congeniata per i primi modelli funzionava bene: infatti il 68000
impiegava uno slot di tempo per eseguire il "fetch" dell'istruzione (cioè
prelevamento dell'istruzione e degli operandi dalla memoria) e per
l'accesso alla memoria e quello successivo per la fase di "execute"
dell'istruzione in cui non vi erano quasi mai accessi alla memoria; per cui
si è cercato di inserire tutti i possibili accessi dei DMA negli slot pari
(in cui il microprocessore era nella fase di execute) e lasciare liberi
quelli dispari per il microprocessore; però anche nel sistema iniziale il
microprocessore attendeva poiché in caso di utilizzo di risoluzioni elevate
gli slot concessi ai DMA del Denise sconfinavano in quelli dispari; la
maggior parte degli altri canali DMA (sprite, disco, audio) erano
posizionati in maniera fissa e se non venivano utilizzati (perché in quel
momento non si legge dal disco ad esempio) potevano essere usati dagli
altri che risultano dinamici, cioè che possono utilizzare qualunque slot
libero quando necessario; questi sono il microprocessore, il Blitter ed il
Copper; ma con quale criterio viene scelto quello piuttosto di quell'altro
per l'assegnazione? Bene, per questo sono previsti dei registri di
priorità; ad esempio il Blitter ha normalmente priorità più alta del
microprocessore per cui se il Blitter in un dato momento opera, al
microprocessore vengono assegnati un numero minimo di slot time. La memoria
che viene condivisa in questo modo, viene denominata CHIP e quindi risulta
più lenta da sfruttare (vista dal microprocessore); ma può essere
addizionata al sistema altra memoria che viene utilizzata solo dal
microprocessore centrale e che quindi può essere sfruttata a pieno da
quest'ultimo; questa viene denominata FAST (il 68020 di un A1200 con FAST
memory gira circa il doppio più veloce rispetto ad uno senza). Fanno
eccezione a quanto detto fino adesso, i due CIA con cui il microprocessore
deve interagire direttamente; per cui sia parallela, che seriale, tastiera
e porte joystick non dispongono di canali DMA (mentre il disk drive si) e
devono essere gestiti dal microprocessore mediante interrupt.